package request

import (
	"admin-api/app/models/entity"
	"time"
)

// MenuTableQueryRequest 菜单表格查询
type MenuTableQueryRequest struct {
	Name   string `json:"name"`   // 菜单名称
	Status int    `json:"status"` // 菜单状态
}

// MenuCreateRequest 菜单创建
type MenuCreateRequest struct {
	ParentId int64  `json:"parentId"`                     // 上级菜单
	MenuType int    `json:"menuType" binding:"required"`  // 菜单类型 (1目录 2菜单 3按钮)
	MenuName string `json:"menuName"  binding:"required"` // 菜单名称
	Icon     string `json:"icon"`                         // 图标
	MenuCode string `json:"menuCode"`                     // 权限字符
	OrderNum int    `json:"orderNum"`                     // 显示顺序
	MenuPath string `json:"menuPath"`                     // 路由地址
	IsShow   int    `json:"isShow"`                       // 显示状态
	IsPublic int    `json:"isPublic"`                     // 公开状态
	Remark   string `json:"remark"`                       // 备注
	UserId   int64  `json:"-"`                            // 用户名称
}

// MenuUpdateRequest 菜单更新
type MenuUpdateRequest struct {
	MenuCreateRequest
	MenuId int64 `json:"menuId" binding:"required"` // 菜单ID
}

func (m *MenuUpdateRequest) To(menu *entity.Menu) {
	menu.ParentId = m.ParentId
	menu.MenuType = m.MenuType
	menu.MenuName = m.MenuName
	menu.OrderNum = m.OrderNum
	menu.MenuPath = m.MenuPath
	menu.UpdateId = m.UserId
	menu.MenuCode = m.MenuCode
	menu.UpdateTime = time.Now()
	menu.IsShow = m.IsShow
	menu.IsPublic = m.IsPublic
	menu.Icon = m.Icon
}

// MenuDeleteRequest 菜单删除
type MenuDeleteRequest struct {
	Ids      []int64 `json:"ids" binding:"required"`
	UserName string  `json:"userName"`
}
